home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 551-575 / disk_563 / kpri / src.lzh / main.c < prev    next >
C/C++ Source or Header  |  1991-11-01  |  5KB  |  186 lines

  1.  
  2. /*
  3.  *  main.c
  4.  */
  5.  
  6.  
  7. #include "defs.h"
  8.  
  9. Prototype struct Window *win;
  10.  
  11. extern struct Library *SysBase;
  12.  
  13. struct Window *win = NULL;
  14.  
  15.  
  16. /***********************  main  **********************************/
  17. const UBYTE version[]  = VER;           /*  be nice to version questions */
  18. const UBYTE myname[]   = "Kpri v2.0 © Koessi 91";
  19. const UBYTE usagestr[] = "\nUSAGE:"
  20.                          "\n       Kpri [textfile]\n";
  21. const UBYTE os20str[]  = "RAW:19/11/300/11/ Kpri: You need OS 2.0, sorry...";
  22.  
  23. int
  24. main(int argc, UBYTE **argv)
  25. {
  26.   if (SysBase->lib_Version < 36)
  27.   {
  28.     FH *out;
  29.     if (out = (FH *)Open(os20str, MODE_NEWFILE))
  30.     {
  31.       Delay(150);
  32.       Close(out);
  33.     }
  34.     return(1);
  35.   }
  36.  
  37.   if (argc > 1)
  38.   {
  39.     UBYTE test = *argv[1];
  40.     if ((argc > 2) ||
  41.        (test < 65) || (test > 122) ||
  42.       ((test > 90) && (test < 97)))
  43.     {
  44.       textreq.es_Title        = myname;
  45.       textreq.es_TextFormat   = usagestr;
  46.       textreq.es_GadgetFormat = resume;
  47.  
  48.       EasyRequestArgs(win, &textreq, NULL, NULL);
  49.       return(1);
  50.     }
  51.   }
  52.  
  53.   struct Screen *scr;
  54.   if (scr = (struct Screen *)LockPubScreen(NULL))   /*  get workbenchscreen */
  55.   {
  56.     SHORT LeftEdge = (SHORT)((scr->Width  >> 1) - WIN_WIDTH  / 2);
  57.     SHORT TopEdge  = (SHORT)((scr->Height >> 1) - WIN_HEIGHT / 2);
  58.  
  59.     struct Gadget *glist;
  60.     if (glist = (struct Gadget *)InitGads(scr))     /*  setup gadgetlist    */
  61.     {
  62.       win = (struct Window *)OpenWindowTags(
  63.             NULL,
  64.             WA_Flags,     WFLG_DRAGBAR  | WFLG_DEPTHGADGET  | WFLG_SMART_REFRESH |
  65.                           WFLG_ACTIVATE | WFLG_CLOSEGADGET,
  66.  
  67.             WA_IDCMP,     IDCMP_GADGETUP| IDCMP_MOUSEBUTTONS| IDCMP_GADGETDOWN   |
  68.                           IDCMP_CLOSEWINDOW,
  69.  
  70.             WA_Left,      LeftEdge,
  71.             WA_Top,       TopEdge,
  72.             WA_Width,     WIN_WIDTH,
  73.             WA_Height,    WIN_HEIGHT,
  74.             WA_Title,     myname,
  75.             WA_MinWidth,  32,
  76.             WA_MinHeight, 32,
  77.             WA_MaxWidth,  -1,
  78.             WA_MaxHeight, -1,
  79.             WA_AutoAdjust, 1,
  80.             WA_PubScreen, NULL,
  81.             WA_PubScreenFallBack, 1,
  82.             WA_Gadgets,   glist,
  83.             TAG_END);
  84.  
  85.       if (win)
  86.       {
  87.         GT_RefreshWindow(win, NULL);
  88.         DrawImage(win->RPort, &image0, 205, 32);  /*  logo  */
  89.  
  90.         get_date();
  91.  
  92.         if (argc == 2)
  93.         {
  94.           strcpy(Buf_storage_str, argv[1]);
  95.           ask_print(Buf_storage_str);
  96.         }
  97.  
  98.         while (!quit)
  99.         {
  100.           WaitPort(win->UserPort);
  101.  
  102.           struct  IntuiMessage *msg;
  103.           while (msg = GT_GetIMsg(win->UserPort))
  104.           {
  105.             ULONG  idcmp_class = msg->Class;
  106.             struct Gadget *gad = msg->IAddress;
  107.             USHORT gad_id      = gad->GadgetID;
  108.  
  109.             GT_ReplyIMsg(msg);
  110.  
  111.             switch(idcmp_class)
  112.             {
  113.  
  114.             case IDCMP_GADGETUP:
  115.               switch(gad_id)
  116.               {
  117.               case GAD_pagesize:
  118.                 toggle(pagesize);
  119.                 continue;
  120.  
  121.               case GAD_linelength:
  122.                 if (linelength < 2)
  123.                   ++linelength;
  124.                 else
  125.                   linelength = 0;
  126.                 continue;
  127.  
  128.               case GAD_split:
  129.                 toggle(split);
  130.                 continue;
  131.  
  132.               case GAD_title:
  133.                 toggle(title);
  134.                 continue;
  135.  
  136.               case GAD_automatic:
  137.                 toggle(autom);
  138.                 if (autom)
  139.                 {
  140.                   for (SHORT i = 0; i < 2; ++i)
  141.                     do_all(i);
  142.                 }
  143.                 continue;
  144.  
  145.               case GAD_filereq:
  146.                 do_filereq();
  147.                 continue;
  148.  
  149.               case GAD_storage_list:
  150.                 do_storage_list();
  151.                 continue;
  152.  
  153.               case GAD_storage_str:
  154.                 ask_print(Buf_storage_str);
  155.                 continue;
  156.  
  157.               case GAD_print_it:
  158.                 do_print_it();
  159.                 continue;
  160.  
  161.               case GAD_forget_it:
  162.                 do_forget_it();
  163.                 continue;
  164.  
  165.               case GAD_quit:
  166.               default:
  167.               }                   /*  switch gad_id */
  168.  
  169.             case IDCMP_CLOSEWINDOW:
  170.               do_quit();
  171.  
  172.             default:
  173.               break;
  174.             }                     /*  switch idcmp_class  */
  175.           }                       /*  while msg     */
  176.         }                         /*  while !quit  */
  177.         cleanup();
  178.         CloseWindow(win);
  179.       }                           /*  if win */
  180.       FreeGads();
  181.     }                             /*  if glist */
  182.   }                               /*  if scr  */
  183.   return(0);
  184. }
  185.  
  186.